package com.fzz.test;
	/**
	参考网站：
	http://git.mydoc.io/ @码云平台帮助文档
	http://www.ruanyifeng.com/blog/2014/06/git_remote.html @阮一峰的网络日志 
	http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 @廖雪峰的官方网站
	*/

public class Git {

		class 安装Git工具{
			
			
		};

	class 创建SSH Key步骤{		
			/**
			*SSH key提供了一种与GitHub通信的方式，通过这种方式，能够在不输入密码的情况下，将GitHub作为自己的remote端服务器，进行版本控制
			*#步骤
			*1.检查SSH keys是否存在
			*2.生成新的ssh key
			*3.将ssh key添加到GitHub或者码云中
			*/
		class One{
			
			/**
			 * 配置Git
			 *Git是分布式的代码管理工具，远程的代码管理是基于SSH的，所以要使用远程的git则需要SSH的配置。
			 *github的SSH配置如下：
			 */
				
			/*第1步:在用户主目录下，看看有没有.ssh目录，如果有，再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件，如果已经有了，可直接跳到下一步。如果没有，打开Shell（Windows下打开Git Bash），*/
			#检查本机是否有ssh key设置
				#$ cd ~/.ssh 或cd .ssh
				#如果没有则提示： No such file or directory
				#如果有则进入~/.ssh路径下（ls查看当前路径文件，rm * 删除所有文件）$ ls -al
				#$ ls -al
				#列出你的.SSH目录中的文件
				# 如果用户目录 没有.ssh这个目录 说明你没有SSH Key。
				#检查目录列表里面是否有文件名为id_rsa.pub 或 id_dsa.pub 如果两个文件你都没有，到第二步:生成一个新的SSH Key，否则，步到第三步添加你的SSH Key 到GitHub或者码云
		};
		
		class Two{

			/*第2步：生成新的SSH Key*/
			#使用Git Bash生成新的ssh key。
			/**
			1.$ cd ~  #保证当前路径在”~”下
			2.创建SSH Key：$ ssh-keygen -t rsa -C "youremail@example.com"//$ ssh-keygen -t rsa -C "xxxxxx@yy.com"  #建议填写自己真实有效的邮箱地址
			*/
			#你需要把邮件地址换成你自己的邮件地址，然后一路回车，使用默认值即可，由于这个Key也不是用于军事目的，所以也无需设置密码。
			#按3个回车，密码为空。
			
			/**1.$询问保存目录，直接回车
			Dos提示：
			Generating public/private rsa key pair.
			Enter file in which to save the key (/c/Users/xxxx_000/.ssh/id_rsa):   #不填直接回车
			
			2.下一步，你会被要求输入一个密码。
				提示：我们强烈建议使用一个好的，安全的密码，到Working with SSH Key passphrases查看更多信息。
			Enter passphrase (empty for no passphrase):   #输入密码（可以为空）
			
			3.$ 输入密码
			  密码：$ 再次输入密码，要求两次一致。
			Enter same passphrase again:   #再次确认密码（可以为空）
			
			4.$你应该会得到如下信息：
			信息提示你生成成功，密钥保存在哪里，指纹码是多少。
				Your identification has been saved in /c/Users/xxxx_000/.ssh/id_rsa.   #生成的密钥
				Your public key has been saved in /c/Users/xxxx_000/.ssh/id_rsa.pub.  #生成的公钥
				The key fingerprint is:
				e3:51:33:xx:xx:xx:xx:xxx:61:28:83:e2:81 xxxxxx@yy.com
				*本机已完成ssh key设置，其存放路径为：c:/Users/xxxx_000/.ssh/下。
				
			注释：可生成ssh key自定义名称的密钥，默认id_rsa。
			$ ssh-keygen -t rsa -C "邮箱地址" -f ~/.ssh/githug_blog_keys #生成ssh key的名称为githug_blog_keys，慎用容易出现其它异常。
			*/
			
			#如果一切顺利的话，可以在用户主目录里找到.ssh目录，里面有id_rsa和id_rsa.pub两个文件，这两个就是SSH Key的秘钥对，id_rsa是私钥，不能泄露出去，id_rsa.pub是公钥，可以放心地告诉任何人。
			
		};
		
		class Three{
			/*3.将ssh key添加到GitHub或者码云中*/
			3.1 登录GitHub系统；点击右上角账号头像的“▼”→Settings→SSH kyes→Add SSH key。
			3.2 复制id_rsa.pub的公钥内容。 
				1) 进入c:/Users/xxxx_000/.ssh/目录下，打开id_rsa.pub文件，全选复制公钥内容。
				2) Title自定义，将公钥粘贴到GitHub中Add an SSH key的key输入框，最后“Add Key”。
			#本地初始化一个项目
				#首先，你需要执行下面两条命令，作为 git 的基础配置，作用是告诉 git 你是谁，你输入的信息将出现在你创建的提交中。
				#$git config --global user.name "你的名字或昵称"
				#$git config --global user.email "你的邮箱"
			#然后在你的需要初始化版本库的文件夹中执行：
				#$git init 
				#$git remote add origin <你的项目地址> //注:项目地址形式为:http://git.oschina.net/xxx/xxx.git或者 git@git.oschina.net:xxx/xxx.git
				#这样就完成了一次版本你的初始化。
		};
	};
    class 将本地项目通过SSH push到GitHub{
		class 创建项目{
			首先在码云创建一个项目
			在github上创建一个示例仓库，如：test ssh key。
		};
		
		class 创建本地版本库{
			/**
			什么是版本库呢？版本库又名仓库，英文名repository，你可以简单理解成一个目录，这个目录里面的所有文件都可以被Git管理起来，
			每个文件的修改、删除，Git都能跟踪，以便任何时刻都可以追踪历史，
			或者在将来某个时刻可以“还原”。所以，创建一个版本库非常简单.
			*/

			class One{
				1.创建目录
				//首先，选择一个合适的地方，创建一个空目录：
				$ mkdir learngit
				$ cd learngit
				$ pwd
				/*
				Users/michael/learngit
				pwd命令用于显示当前目录。在我的Mac上，这个仓库位于/Users/michael/learngit。
				如果你使用Windows系统，为了避免遇到各种莫名其妙的问题，请确保目录名（包括父目录）不包含中文。
				*/
			};
			class Two{
				2.初始化
				//第二步，通过git init命令把这个目录变成Git可以管理的仓库：
				$ git init
				/*
				Initialized empty Git repository in /Users/michael/learngit/.git/
				瞬间Git就把仓库建好了，而且告诉你是一个空的仓库（empty Git repository），细心的读者可以发现当前目录下多了一个.git的目录，这个目录是Git来跟踪管理版本库的，
				没事千万不要手动修改这个目录里面的文件，不然改乱了，就把Git仓库给破坏了。
				如果你没有看到.git目录，那是因为这个目录默认是隐藏的，用ls -ah命令就可以看见。
				*/
			};
			class Three{
				3.创建hello.md文件
				$ echo "这是一次测试test ssh key" > hello.md
			};
			class Four{
				4.提交到本地
				//若出现如上warning提示则重新提交一次即可。
				$ git add .   #提交当前目录下所以文件
				$ git commit -m "add hello.md"   #提交记录说明 
			};
			class Five{
				5.提交到github
				$ git remote add origin ‘粘贴复制test ssh key的ssh路径’  #
				$ git push -u origin master
				Enter passphrase for key '/c/Users/hgpin_000/.ssh/id_rsa':  #ssh key设置密码故此需要输入密码
				刷新Github中的test ssh key仓库，查看hello.md
			};
		};
	
		class 提交分支4步{
			1.git init（初始化一次）
			2.git add .
			3.git commit -m "说明"
			4.git push origin master
		};
	}
}